package net.bioclipse.balloon.tests; import java.io.IOException; import java.net.URL; import java.util.Enumeration; import java.util.List; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.Path; import org.junit.Assert; import org.junit.Test; import org.osgi.framework.Bundle; import org.osgi.framework.BundleContext; import org.osgi.framework.FrameworkUtil; import org.osgi.framework.ServiceReference; import net.bioclipse.balloon.business.IBalloonManager; import net.bioclipse.cdk.business.ICDKManager; import net.bioclipse.cdk.business.IJavaCDKManager; import net.bioclipse.cdk.domain.ICDKMolecule; import net.bioclipse.core.business.BioclipseException; import net.bioclipse.core.domain.IMolecule; import net.bioclipse.managers.business.IBioclipseManager; import net.bioclipse.ui.business.IJavaUIManager; import net.bioclipse.ui.business.IUIManager; public class AbstractBalloonManagerPluginTest { static IBalloonManager balloon; static ICDKManager cdk; static IUIManager ui; @Test public void generate3DconformationsMolecule() throws BioclipseException { IMolecule mol = getMolecule(); List<ICDKMolecule> mols = balloon.generate3Dconformations(mol, 5); Assert.assertTrue( mols.size()>1); } public void generate3DconformationsList() { // generate3Dconformations(List<String>, int) } public void generate3DconformationsString() { IFile molFile = null; // generate3Dconformations(String, int) } @Test public void generate3DconformationsStringString() throws CoreException, BioclipseException, IOException { Bundle b = FrameworkUtil.getBundle(this.getClass()); Enumeration<URL> urls = b.findEntries("", "*.cml", true); if(!urls.hasMoreElements()) System.out.println("Nothing found!"); else System.out.println("Found: "); while(urls.hasMoreElements()) { System.out.println(urls.nextElement().toString()); } URL cml = b.getEntry("bin/testFiles/0037.cml"); String project = ui.newProject("Test Project"); String fileName = cml.getFile(); System.out.println(fileName); System.out.println(new Path("/"+project).append(new Path(fileName).removeFirstSegments(2)).toString()); IFile cmlFile = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path("/"+project).append(new Path(fileName).removeFirstSegments(2))); if(!cmlFile.exists()) { cmlFile.create(cml.openStream(), true, null); } String input = cmlFile.getLocation().toOSString(); String output = balloon.generate3Dconformations(input, null, 1); List<ICDKMolecule> molecules = cdk.loadMolecules(output); Assert.assertEquals(1, molecules.size()); } public void generate3DcoordinatesIFile() { // generate3Dcoordinates(IFile, BioclipseUIJob<IFile>) } public void generate3DcoordinatesMolecule() { // generate3Dcoordinates(IMolecule) } public void generate3DcoordinatesListOfString() { // generate3Dcoordinates(List<String>) } public void generate3DcoordinatesString() { IFile molFile = null; // generate3Dcoordinates(String) } public void generate3DcoordinatesStringString() { IFile molFile = null; IFile outFile = null; // generate3Dcoordinates(String, String) } public void generateMultiple3DconformationsList() { // generateMultiple3Dconformations(List<IMolecule>, int) } public void generateMultiple3DconformationsListProgress() { // generateMultiple3Dconformations(List<IMolecule>, int, IProgressMonitor) } public void generateMultiple3DcoordinatesList() { // generateMultiple3Dcoordinates(List<IMolecule>) } public void generateMultiple3DcoordinatesListProgress() { // generateMultiple3Dcoordinates(List<IMolecule>, IProgressMonitor) } private IMolecule getMolecule() throws BioclipseException { ICDKManager cdk = getManager(IJavaCDKManager.class); return cdk.fromSMILES("c1cccccc1OCNCP"); } static <T extends IBioclipseManager> T getManager(Class<T> managerInterface) { BundleContext bundleContext = FrameworkUtil.getBundle(managerInterface).getBundleContext(); ServiceReference<T> serviceRef = bundleContext.getServiceReference(managerInterface); return bundleContext.getService(serviceRef); } }